<?php
/**
 * Classe que representa o objeto Palestrante
 * @name Palestrante
 * @author Fabio Baía baiacfabio@gmail.com
 * @since 25/04/2013 17:04:09
 */
class Palestrante{
	private $id;
	private $nome;
	private $email;
	private $telefone;
	private $foto;
	private $curriculum;
	private $linkLattes;
	
	private $atividades = null;
	private $dataModificacao;
	private $eventos = null;
	
	
	private $mapping = array(
			0 => array("type" => "OneToMany", "entityRelated" => "atividade", "owner" => "false"),
			1 => array("type" => "ManyToMany", "entityRelated" => "evento", "owner" => "false")
	);
	
	public function Palestrante(){
		$this->nome = "";
		$this->email = "";
		$this->telefone = "";
		$this->foto = "";
		$this->curriculum = "";
		$this->linkLattes = "";
		$this->dataModificacao = new DateTime("now");
		
		$this->eventos = array();
		$this->atividades = array();
	}
	
	/**
	 * @access public
	 * @name setId
	 * @param int $id Id do palestrante
	 * @since 25/04/2013 17:28:42
	 */
	public function setId($id){
		$this->id = $id;
	}

	/**
	 * @access public
	 * @name getId
	 * @return int Id do palestrante
	 * @since 25/04/2013 17:28:32
	 */
	public function getId(){
		return $this->id;
	}
		
	/**
	 * @access public
	 * @name setNome
	 * @param string $nome Nome do palestrante
	 * @since 25/04/2013 17:28:18
	 */
	public function setNome($nome){
		$this->nome = $nome;
	}

	/**
	 * @access public
	 * @name getNome
	 * @return string Nome do palestrante
	 * @since 25/04/2013 17:28:05
	 */
	public function getNome(){
		return $this->nome;
	}
	
	/**
	 * @access public
	 * @name setEmail
	 * @param string $email Email do palestrante
	 * @since 25/04/2013 17:27:51
	 */
	public function setEmail($email){
		$this->email = $email;
	}
	
	/**
	 * @access public
	 * @name getEmail
	 * @return string Email do palestrante
	 * @since 25/04/2013 17:27:26
	 */
	public function getEmail(){
		return $this->email;
	}
	
	/**
	 * @access public
	 * @name setTelefone
	 * @param string $telefone Telefone do palestrante
	 * @since 25/04/2013 17:27:03
	 */
	public function setTelefone($telefone){
		$this->telefone = $telefone;
	}
	
	/**
	 * @access public
	 * @name getTelefone
	 * @return string Telefone do palestrante
	 * @since 25/04/2013 17:26:17
	 */
	public function getTelefone(){
		return $this->telefone;
	}

	/**
	* @access public
	* @name setCurriculum
	* @param string $curriculum Curriculum do Palestrante
	* @since 25/04/2013 17:05:55
	*/
	public function setCurriculum($curriculum) {
		$this->curriculum = $curriculum;
	}
	
	/**
	* @access public
	* @name getCurriculum
	* @return string Curriculum do Palestrante
	* @since 25/04/2013 17:07:02
	*/
	public function getCurriculum() {
		return $this->curriculum;
	}
	
	/**
	 * @access public
	 * @name setFoto
	 * @param string $foto Nome do arquivo de imagem
	 * @since 25/04/2013 17:29:45
	 */
	public function setFoto($foto){
		$this->foto = $foto;
	}
	
	/**
	 * @access public
	 * @name getFoto
	 * @return string Nome do arquivo de imagem
	 * @since 25/04/2013 17:30:06
	 */
	public function getFoto(){
		return $this->foto;
	}
	
	/**
	 * @access public
	 * @name getLinkLattes
	 * @return string Link do Curriculum Lattes
	 * @since 25/04/2013 18:50:01
	 */
	public function getLinkLattes() {
		return $this->linkLattes;
	}
	
	/**
	 * @access public
	 * @name setLinkLattes
	 * @param string $linkLattes Link do Curriculum Lattes
	 * @since 25/04/2013 18:49:33
	 */
	public function setLinkLattes($linkLattes){
		$this->linkLattes = $linkLattes;
	}
	
	/**
	 * @access public
	 * @name setDataModificacao
	 * @param string $data Data de modificação
	 * @since 25/04/2013 17:30:15
	 */
	public function setDataModificacao($dataModificacao){
		$this->dataModificacao = $dataModificacao;
	}
	
	/**
	 * @access public
	 * @name getDataModificacao
	 * @return string Data de modificação
	 * @since 25/04/2013 17:30:40
	 */
	public function getDataModificacao(){
		return $this->dataModificacao;
	}
	
	/**
	 * @access public
	 * @name addEvento
	 * @param Evento $evento
	 * @since 25/04/2013 18:47:05
	 */
	public function addEvento($evento){
		//fabio
		$evento->addPalestrante($this);
		
		/*if(!$this->eventos->contains($evento)){
			$this->eventos[] = $evento;
		}*/
		if(!in_array($evento, $this->eventos)){
			$this->eventos[] = $evento;
		}
	}
	
	/**
	 * @access public
	 * @name getEventos
	 * @return array Eventos
	 * @since 25/04/2013 18:47:09
	 */
	public function getEventos(){
		return $this->eventos;
	}
	
	/**
	* @access public
	* @name addAtividade
	* @param Atividade $atividade
	* @since 07/05/2013 15:20:09
	*/
	public function addAtividade($atividade) {
	    if(!in_array($atividade, $this->atividades)){
			$this->atividades[] = $atividade;
		}
	}
	
	/**
	* @access public
	* @name getAtividades
	* @return array Atividades
	* @since 07/05/2013 15:21:18
	*/
	public function getAtividades() {
		return $this->atividades;
	}
	
	/**
	* @access public
	* @name getMapping
	* @return $mapping
	* @since 14/06/2013 21:12:23
	*/
	public function getMapping() {
		return $this->mapping;
	}
	
	
}